package com.stack;

public class AplicacionPilas {

	public boolean validadParentesis(String parentesis) {

		StackList pila = new StackList();

		boolean valido = true;

		for (int i = 0; i < parentesis.length() && valido; i++) {
			if (parentesis.charAt(i) == '(') {
				pila.push('(');
			} else if (parentesis.charAt(i) == ')') {
				try {
					pila.pop();
				} catch (EmptyStackException e) {
					valido = false;
				}
			} else {
				valido = false;
			}
		}

		valido &= pila.isEmpty();
		return valido;

	}

	public static void binaryConverter(int n) {

		StackList pila = new StackList();

		while (n > 0) {
			pila.push(n % 2);
			n /= 2;
		}

		while (!pila.isEmpty()) {
			System.out.print(pila.pop());
		}

	}

	public static void hexadecimalConverter(int n) {

		StackList pila = new StackList();

		while (n > 0) {
			pila.push(n % 16);
			n /= 16;
		}

		while (!pila.isEmpty()) {

			int number = (Integer) pila.pop();

			switch (number) {
			case 10:
				System.out.print("A");
				break;
			case 11:
				System.out.print("B");
				break;
			case 12:
				System.out.print("C");
				break;
			case 13:
				System.out.print("D");
				break;
			case 14:
				System.out.print("E");
				break;
			case 15:
				System.out.print("F");
				break;
			default:
				System.out.print(number);
				break;
			}

		}

	}

	public static void main(String args[]) {

		/*
		 * AplicacionPilas validacion = new AplicacionPilas();
		 * if(validacion.validadParentesis("(((())))")){
		 * System.out.println("Cadena valida"); }else{
		 * System.out.println("Cadena no valida"); }
		 */

		// AplicacionPilas.binaryConverter(8);
		AplicacionPilas.hexadecimalConverter(170);
	}

}
